/********************************************************************************
* @author: Liu  HZ
* @date: 2024/5/27
* @description: 
********************************************************************************/
#include <iostream>
#include <memory>
#include <vector>

using namespace std;

#include <iostream>
#include <limits> // 用于获取最小值

// 递归终止函数，返回单个参数的值
template<typename T>
T Max(T value) {
    return value;
}

// 可变参数模板函数，用于比较多个数值
template<typename T, typename... Args>
T Max(T first, Args... args) {
    T max_value = first;              // 假设第一个参数是最大的
    T next_value = Max(args...);      // 递归计算剩余参数的最大值
    if (next_value > max_value) {
        max_value = next_value; // 更新最大值
    }
    return max_value;
}

int main() {
//    std::vector<int> v(10, 1);
//    std::exchange(v, {1, 2, 3, 4});
//    cout << v.size() << endl;
//    for (int a: v) {
//        cout << a << " ";
//    }

    int a = 1, b = 3, c = 2, d = 5;
    std::cout << "Max value: " << Max(a, b, c, d) << std::endl; // 输出最大值
    return 0;
}
